from abc import ABCMeta, abstractmethod


class Employee(object, metaclass=ABCMeta):
    '''员工'''
    def __init__(self, name):
        '''设置名字'''

        self._name = name

    @property
    def name(self):
        return self._name
    
    @abstractmethod
    def get_salary(self):
        '''月薪'''
        pass


class Manager(Employee):
    '''部门经理'''

    def get_salary(self):
        return 15000.0


class Programer(Employee):
    '''苦逼的程序员'''

    def __init__(self, name, working_hour=0):
        super().__init__(name)
        self._working_hour = working_hour

        @property
        def working_hour(self):
            return self._working_hour

        @working_hour.setter
        def working_hour(self, working_hour):
            self._working_hour = working_hour if working_hour > 0
            else 0
            
